diff --git a/user_guide_src/source/helpers/date_helper.rst b/user_guide_src/source/helpers/date_helper.rst
index 67ead03..1a552c9 100644
--- a/user_guide_src/source/helpers/date_helper.rst
+++ b/user_guide_src/source/helpers/date_helper.rst
@@ -195,7 +195,7 @@
 	:param	int 	$datestr: Date string
 	:returns:	int UNIX timestamp or FALSE on failure
 
-The opposite of the :php:func:`unix_to_time()` function. Takes a "human"
+The opposite of the :func:`unix_to_time()` function. Takes a "human"
 time as input and returns it as a UNIX timestamp. This is useful if you
 accept "human" formatted dates submitted via a form. Returns boolean FALSE
 date string passed to it is not formatted as indicated above.
@@ -323,7 +323,7 @@
 	echo timezones('UM5');
 
 
-This function is useful when used with :php:func:`timezone_menu()`.
+This function is useful when used with :func:`timezone_menu()`.
 
 timezone_menu()
 ===============
diff --git a/user_guide_src/source/helpers/form_helper.rst b/user_guide_src/source/helpers/form_helper.rst
index e88a5de..fd66f01 100644
--- a/user_guide_src/source/helpers/form_helper.rst
+++ b/user_guide_src/source/helpers/form_helper.rst
@@ -81,7 +81,7 @@
 	:param	array	$hidden: An array of hidden fields' definitions
 	:returns:	string
 
-This function is absolutely identical to :php:func:`form_open()` above,
+This function is absolutely identical to :func:`form_open()` above,
 except that it adds a *multipart* attribute, which is necessary if you
 would like to use the form to upload files with.
 
@@ -204,7 +204,7 @@
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
 	:returns:	string
 
-This function is identical in all respects to the :php:func:`form_input()`
+This function is identical in all respects to the :func:`form_input()`
 function above except that it uses the "password" input type.
 
 form_upload()
@@ -217,7 +217,7 @@
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
 	:returns:	string
 
-This function is identical in all respects to the :php:func:`form_input()`
+This function is identical in all respects to the :func:`form_input()`
 function above except that it uses the "file" input type, allowing it to
 be used to upload files.
 
@@ -231,7 +231,7 @@
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
 	:returns:	string
 
-This function is identical in all respects to the :php:func:`form_input()`
+This function is identical in all respects to the :func:`form_input()`
 function above except that it generates a "textarea" type.
 
 .. note: Instead of the *maxlength* and *size* attributes in the above example,
@@ -318,7 +318,7 @@
 associative array of options, and the third parameter will contain the
 value or values you wish to be selected.
 
-The parameter usage is identical to using :php:func:`form_dropdown()` above,
+The parameter usage is identical to using :func:`form_dropdown()` above,
 except of course that the name of the field will need to use POST array
 syntax, e.g. foo[].
 
@@ -440,7 +440,7 @@
 	:param	string	$extra: Extra attributes to be added to the tag *as is*
 	:returns:	string
 
-This function is identical in all respects to the :php:func:`form_checkbox()`
+This function is identical in all respects to the :func:`form_checkbox()`
 function above except that it uses the "radio" input type.
 
 form_label()
@@ -501,7 +501,7 @@
 	:returns:	string
 
 Lets you generate a standard reset button. Use is identical to
-:php:func:`form_submit()`.
+:func:`form_submit()`.
 
 form_button()
 =============
@@ -660,7 +660,7 @@
 	:returns:	string
 
 Permits you to display radio buttons in the state they were submitted.
-This function is identical to the :php:func:`set_checkbox()` function above.
+This function is identical to the :func:`set_checkbox()` function above.
 
 Example::
 
@@ -704,7 +704,7 @@
 	:param	string	$suffix: Error closing tag
 	:returns:	string
 
-Similarly to the :php:func:`form_error()` function, returns all validation
+Similarly to the :func:`form_error()` function, returns all validation
 error messages produced by the :doc:`Form Validation Library
 <../libraries/form_validation>`, with optional opening and closing tags
 around each of the messages.
diff --git a/user_guide_src/source/helpers/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst
index cc0f2d3..1016d3b 100644
--- a/user_guide_src/source/helpers/html_helper.rst
+++ b/user_guide_src/source/helpers/html_helper.rst
@@ -286,7 +286,7 @@
 	:param	array	$attributes: HTML attributes
 	:returns:	string
 
-Identical to :php:func:`ul()`, only it produces the <ol> tag for
+Identical to :func:`ul()`, only it produces the <ol> tag for
 ordered lists instead of <ul>.
 
 meta()
diff --git a/user_guide_src/source/helpers/security_helper.rst b/user_guide_src/source/helpers/security_helper.rst
index b06f78d..cf9854c 100644
--- a/user_guide_src/source/helpers/security_helper.rst
+++ b/user_guide_src/source/helpers/security_helper.rst
@@ -97,7 +97,7 @@
 
 This is a security function that converts PHP tags to entities.
 
-.. note: :php:func:`xss_clean()` does this automatically, if you use it.
+.. note: :func:`xss_clean()` does this automatically, if you use it.
 
 Example::
 
diff --git a/user_guide_src/source/helpers/smiley_helper.rst b/user_guide_src/source/helpers/smiley_helper.rst
index cfb4acb..3fad253 100644
--- a/user_guide_src/source/helpers/smiley_helper.rst
+++ b/user_guide_src/source/helpers/smiley_helper.rst
@@ -46,7 +46,7 @@
 In your `application/controllers/` folder, create a file called
 smileys.php and place the code below in it.
 
-.. important:: Change the URL in the :php:func:`get_clickable_smileys()`
+.. important:: Change the URL in the :func:`get_clickable_smileys()`
 	function below so that it points to your smiley folder.
 
 You'll notice that in addition to the smiley helper, we are also using
@@ -100,7 +100,7 @@
 	$image_array = get_smiley_links("http://example.com/images/smileys/", "comment_textarea_alias");
 
 To map the alias to the field id, pass them both into the
-:php:func:`smiley_js()` function::
+:func:`smiley_js()` function::
 
 	$image_array = smiley_js("comment_textarea_alias", "comments");
 
